package com.usian.third.utils;

import com.alibaba.fastjson.JSON;
import com.usian.common.third.UserCheckDto;
import okhttp3.FormBody;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;

import java.io.IOException;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

public class VerifyRealName {

    public Map checkUser(String idcard, String mobile, String name) throws IOException {
        String url = "https://mobile3elements.shumaidata.com/mobile/verify_real_name";
        String appCode = "00f561f2f1dd4597ae28d86fc9198b30";

        Map<String, String> params = new HashMap<>();
        params.put("idcard", idcard);
        params.put("mobile", mobile);
        params.put("name", name);

        String result = postForm(appCode, url, params);
        /*
        idcard  证件号
        mobile  手机号
        name    名字
                验证结果   1:一致  2:不一致  3:无记录  -1:异常
        */
        UserCheckDto userCheckDto = JSON.parseObject(result, UserCheckDto.class);
        Map<String, String> map = new HashMap<>();
        if (!userCheckDto.getCode().equals("0")) {
            map.put("code", userCheckDto.getCode());
            map.put("msg", userCheckDto.getMessage());
            return map;
        } else {
            map.put("code", userCheckDto.getCode());
            map.put("msg", userCheckDto.getResult().getRes());
            return map;
        }
    }


    public static String postForm(String appCode, String url, Map<String, String> params) throws IOException {
        OkHttpClient client = new OkHttpClient.Builder().build();
        FormBody.Builder formbuilder = new FormBody.Builder();
        Iterator<String> it = params.keySet().iterator();
        while (it.hasNext()) {
            String key = it.next();
            formbuilder.add(key, params.get(key));
        }
        FormBody body = formbuilder.build();
        Request request = new Request.Builder().url(url).addHeader("Authorization", "APPCODE " + appCode).post(body).build();
        Response response = client.newCall(request).execute();
        System.out.println("返回状态码" + response.code() + ",message:" + response.message());
        String result = response.body().string();
        return result;
    }
}
